home *** CD-ROM | disk | FTP | other *** search
- #! /usr/bin/env python
-
- # www9.py -- display the contents of a URL in a Text widget
- # - set window title
- # - make window resizable
- # - update display while reading
- # - vertical scroll bar
- # - rewritten as class
-
- import sys
- import urllib
- from Tkinter import *
-
- def main():
- if len(sys.argv) != 2 or sys.argv[1][:1] == '-':
- print "Usage:", sys.argv[0], "url"
- sys.exit(2)
- url = sys.argv[1]
- viewer = Viewer()
- viewer.load(url)
- viewer.go()
-
- class Viewer:
-
- def __init__(self):
- # Create root window
- self.root = Tk()
- self.root.minsize(1, 1)
-
- # The Scrollbar *must* be created first
- self.vbar = Scrollbar(self.root)
- self.vbar.pack({'fill': 'y', 'side': 'right'})
- self.text = Text(self.root)
- self.text.pack({'expand': 1, 'fill': 'both', 'side': 'left'})
-
- # Link Text widget and Scrollbar
- self.text['yscrollcommand'] = (self.vbar, 'set')
- self.vbar['command'] = (self.text, 'yview')
-
- def load(self, url):
- # Load a new URL into the window
- fp = urllib.urlopen(url)
-
- self.root.title(url)
-
- self.text.delete('0.0', 'end')
-
- while 1:
- line = fp.readline()
- if not line: break
- self.text.insert('end', line)
- self.root.update_idletasks()
-
- fp.close()
-
- def go(self):
- # Start Tk main loop
- self.root.mainloop()
-
- main()
-